package com.dys.testio10;

import java.io.*;

/**
 * @className: src.main.java.com.dys.testio10.ObjectOutputStreamTest
 * @description: src.main.java.com.dys.testio10
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/08/16 下午11:51
 */
public class ObjectOutputStreamTest {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) throws Exception {
        new ObjectOutputStreamTest().readObject();
    }

    /**
     * 序列化，将程序中的文件写入到磁盘中
     *
     * @throws Exception
     */
    public void testWriteObject() throws Exception {
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("e:\\Demo5.txt")));
        Person person = new Person("张三", 22);
        oos.writeObject(person);
        oos.close();
    }

    /**
     * 反序列化：将磁盘中的文件读取到内存中
     *
     * @throws Exception
     */
    public void readObject() throws Exception {
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("e:\\Demo5.txt")));
        Person person = (Person) ois.readObject();
        System.out.println(person);
        ois.close();
    }
}
